package net.maku.custom.biza.service.customs;

import java.util.List;
import javax.servlet.http.HttpServletResponse;
import net.maku.custom.biza.controller.customers.query.CustomerInfoQuery;
import net.maku.custom.biza.controller.customers.query.CustomerSelectResponseVO;
import net.maku.custom.biza.controller.customers.query.CustomerShipmentsQuery;
import net.maku.custom.biza.controller.customers.vo.CustomerHResponseVO;
import net.maku.custom.biza.controller.customers.vo.CustomerInfoVO;
import net.maku.custom.biza.pojo.customs.CustomerInfoEntity;
import net.maku.framework.common.page.PageResult;
import net.maku.framework.common.service.BaseService;
import net.maku.framework.common.utils.Result;

/**
 * 客户信息
 *
 * @author NULL
 * @since 1.0.0 2022-07-11
 */
public interface CustomerInfoService  extends BaseService<CustomerInfoEntity>{

    PageResult<CustomerInfoVO> page(CustomerInfoQuery query);

    PageResult<CustomerInfoVO> selectCustomerList(CustomerInfoQuery query);

    CustomerInfoVO selectRelById(Long id);

    Result save(CustomerInfoVO vo);

    void update(CustomerInfoVO vo);

    void delete(List<Long> idList);

    /**
     * 统计客户出货量
     */
    void downloadShipments(HttpServletResponse response, CustomerShipmentsQuery query);

    Result<CustomerHResponseVO> getData(Long id);

    Result<List<CustomerSelectResponseVO>> getSelectData();
}